<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<!-- Mirrored from www.wolfssl.com/wolfSSL/Docs-wolfssl-manual-13-openssl-compatibility.html by HTTrack Website Copier/3.x [XR&CO'2014], Tue, 17 Jan 2017 13:31:37 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=UTF-8" /><!-- /Added by HTTrack -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="Generator" content="iWeb 3.0.4"/>
<meta name="iWeb-Build" content="local-build-20170103"/>
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"/>
<meta name="viewport" content="width=770"/>
<title>wolfSSL - Docs | wolfSSL Manual - Chapter 13 (OpenSSL Compatibility)</title>
<link rel="stylesheet" type="text/css" media="screen,print" href="Docs-wolfssl-manual-13-openssl-compatibility_files/Docs-wolfssl-manual-13-openssl-compatibility.css"/>
<!--[if lt IE 8]><link rel='stylesheet' type='text/css' media='screen,print' href='Docs-wolfssl-manual-13-openssl-compatibility_files/Docs-wolfssl-manual-13-openssl-compatibilityIE.css'/><![endif]-->
<!--[if gte IE 8]><link rel='stylesheet' type='text/css' media='screen,print' href='Media/IE8.css'/><![endif]-->
<script type="text/javascript" src="Scripts/iWebSite.js"></script>
<script type="text/javascript" src="Docs-wolfssl-manual-13-openssl-compatibility_files/Docs-wolfssl-manual-13-openssl-compatibility.js"></script>
<meta name="description" content="wolfSSL (formerly CyaSSL) provides an OpenSSL compatibility layer to ease the transition into using the wolfSSL embedded SSL library or to aid in porting an existing OpenSSL application over to wolfSSL."/><meta name="keywords" content="embedded ssl, ssl library, open source ssl, openssl compatibility, openssl alternative, openssl replacement, embedded security, x509, small openssl, smart grid, connected home, ecc, lightweight ssl, suite b, encryption security software, ssl inspection"/><meta name="robots" content="follow,index"/> <script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script','../../www.google-analytics.com/analytics.js','ga');ga('create','UA-64826966-1','auto');ga('send','pageview');</script>
 
<script>//<![CDATA[
window.zEmbed||function(e,t){var n,o,d,i,s,a=[],r=document.createElement("iframe");window.zEmbed=function(){a.push(arguments)},window.zE=window.zE||window.zEmbed,r.src="javascript:false",r.title="",r.role="presentation",(r.frameElement||r).style.cssText="display: none",d=document.getElementsByTagName("script"),d=d[d.length-1],d.parentNode.insertBefore(r,d),i=r.contentWindow,s=i.document;try{o=s}catch(c){n=document.domain,r.src='javascript:var d=document.open();d.domain="'+n+'";void(0);',o=s}o.open()._l=function(){var o=this.createElement("script");n&&(this.domain=n),o.id="js-iframe-async",o.src=e,this.t=+new Date,this.zendeskHost=t,this.zEQueue=a,this.body.appendChild(o)},o.write('<body onload="document._l();">'),o.close()}("../../assets.zendesk.com/embeddable_framework/main.js","wolfssl.zendesk.com");
//]]></script>
  </head>
<body style="background: rgb(255, 255, 255); margin: 0pt; " onload="onPageLoad();">
<div style="text-align: center; ">
<div style="margin-bottom: 20px; margin-left: auto; margin-right: auto; margin-top: 20px; overflow: hidden; position: relative; word-wrap: break-word;  background: rgb(255, 255, 255); text-align: left; width: 770px; " id="body_content">
<div style="float: left; margin-left: 0px; position: relative; width: 770px; z-index: 0; " id="nav_layer">
<div style="height: 0px; line-height: 0px; " class="bumper"> </div>
<div style="clear: both; height: 0px; line-height: 0px; " class="spacer"> </div>
</div>
<div style="float: left; height: 0px; line-height: 0px; margin-left: 0px; position: relative; width: 770px; z-index: 10; " id="header_layer">
<div style="height: 0px; line-height: 0px; " class="bumper"> </div>
</div>
<div style="margin-left: 0px; position: relative; width: 770px; z-index: 5; " id="body_layer">
<div style="height: 0px; line-height: 0px; " class="bumper"> </div>
<div id="id1" style="height: 38px; left: 375px; position: absolute; top: 157px; width: 361px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_361_38" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style">wolfSSL Manual</p>
</div>
</div>
</div>
<div id="id2" style="height: 2251px; left: 35px; position: absolute; top: 281px; width: 701px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_701_2251" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-top: 0pt; " class="paragraph_style_1">Chapter 13: OpenSSL Compatibility<span class="style"><br/></span></p>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_3"><br/></p>
<p class="paragraph_style_3">13.1 Compatibility with OpenSSL<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_4">wolfSSL (formerly CyaSSL) provides an OpenSSL compatibility header, <span class="style_1">wolfssl/openssl/ssl.h</span>, in addition to the wolfSSL native API, to ease the transition into using wolfSSL or to aid in porting an existing OpenSSL application over to wolfSSL.  For an overview of the OpenSSL Compatibility Layer, please continue reading below.  To view the complete set of OpenSSL functions supported by wolfSSL, please see the <span class="style_1">wolfssl/openssl/ssl.h</span> file.<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_4">The OpenSSL Compatibility Layer maps a subset of the most commonly-used OpenSSL commands to wolfSSL’s native API functions.  This should allow for an easy replacement of OpenSSL by wolfSSL in your application or project without changing much code.<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_4">Our test beds for OpenSSL compatibility are stunnel and Lighttpd, which means that we build both of them with wolfSSL as a way to test our OpenSSL compatibility API.<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_3">13.2 Differences Between wolfSSL and OpenSSL<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_4">Many people are curious how wolfSSL compares to OpenSSL and what benefits there are to using an SSL library that has been optimized to run on embedded platforms.  Obviously, OpenSSL is free and presents no initial costs to begin using, but we believe that wolfSSL will provide you with more flexibility, an easier integration of SSL/TLS into your existing platform, current standards support, and much more – all provided under a very easy-to-use license model.<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_4">The points below outline several of the main differences between wolfSSL and OpenSSL.<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_4"><br/></p>
<ol>
<li style="line-height: 15px; padding-left: 30px; text-indent: -15px; " class="full-width" value="1">
<p style="text-indent: -15px; " class="paragraph_style_5"><span style="font-size: 12px; " class="Bullet">1.</span><span style="width: 5px; " class="inline-block"></span>With a 20-100 kB build size, wolfSSL is up to 20 times smaller than OpenSSL.  wolfSSL is a better choice for resource constrained environments – where every byte matters.<br/></p>
</li>
</ol>
<p class="paragraph_style_6"><br/></p>
<ol>
<li style="line-height: 15px; padding-left: 30px; text-indent: -15px; " class="full-width" value="2">
<p style="text-indent: -15px; " class="paragraph_style_5"><span style="font-size: 12px; " class="Bullet">2.</span><span style="width: 5px; " class="inline-block"></span>wolfSSL is up to date with the most current standards of TLS 1.2 with DTLS, which OpenSSL has yet to address.  The wolfSSL team is dedicated to continually keeping wolfSSL up-to-date with current standards.<br/></p>
</li>
</ol>
<p class="paragraph_style_6"><br/></p>
<ol>
<li style="line-height: 15px; padding-left: 30px; text-indent: -15px; " class="full-width" value="3">
<p style="text-indent: -15px; " class="paragraph_style_5"><span style="font-size: 12px; " class="Bullet">3.</span><span style="width: 5px; " class="inline-block"></span>wolfSSL offers the best current ciphers and standards available today, including ciphers for streaming media support.  In addition, the recently-introduced NTRU cipher allows speed increases of 20-200x over standard RSA.<br/></p>
</li>
</ol>
<p class="paragraph_style_6"><br/></p>
<ol>
<li style="line-height: 15px; padding-left: 30px; text-indent: -15px; " class="full-width" value="4">
<p style="text-indent: -15px; " class="paragraph_style_5"><span style="font-size: 12px; " class="Bullet">4.</span><span style="width: 5px; " class="inline-block"></span>wolfSSL is dual licensed under both the GPLv2 as well as a commercial license, where OpenSSL is available only under their unique license from multiple sources.<br/></p>
</li>
</ol>
<p class="paragraph_style_6"><br/></p>
<ol>
<li style="line-height: 15px; padding-left: 30px; text-indent: -15px; " class="full-width" value="5">
<p style="text-indent: -15px; " class="paragraph_style_5"><span style="font-size: 12px; " class="Bullet">5.</span><span style="width: 5px; " class="inline-block"></span>wolfSSL is backed by an outstanding company who cares about its users and about their security, and who actively works to improve and expand wolfSSL.  The wolfSSL team is based in Bozeman, MT, Portland, OR, and Seattle, WA, and is always willing to help.<br/></p>
</li>
</ol>
<p class="paragraph_style_6"><br/></p>
<ol>
<li style="line-height: 15px; padding-left: 30px; text-indent: -15px; " class="full-width" value="6">
<p style="text-indent: -15px; " class="paragraph_style_5"><span style="font-size: 12px; " class="Bullet">6.</span><span style="width: 5px; " class="inline-block"></span>wolfSSL is the leading  SSL library for real time, mobile, and embedded systems by virtue of its breadth of platform support and successful implementations on embedded environments.  Chances are we’ve already been ported to your environment.  If not, let us know and we’ll be glad to help.<br/></p>
</li>
</ol>
<p class="paragraph_style_6"><br/></p>
<ol>
<li style="line-height: 15px; padding-left: 30px; text-indent: -15px; " class="full-width" value="7">
<p style="text-indent: -15px; " class="paragraph_style_5"><span style="font-size: 12px; " class="Bullet">7.</span><span style="width: 5px; " class="inline-block"></span>wolfSSL offers several abstraction layers to make integrating SSL into your environment and platform as easy as possible.  With an OS layer, a custom I/O layer, and a C Standard Library abstraction layer, integration has never been so easy.<br/></p>
</li>
</ol>
<p class="paragraph_style_6"><br/></p>
<ol>
<li style="line-height: 15px; padding-left: 30px; text-indent: -15px; " class="full-width" value="8">
<p style="text-indent: -15px; " class="paragraph_style_5"><span style="font-size: 12px; " class="Bullet">8.</span><span style="width: 5px; " class="inline-block"></span>With a wolfSSL license comes one full year of support.  Available directly through phone, email or the wolfSSL product support forums, your questions are answered quickly and accurately to help you make progress on your project as quickly as possible.<br/></p>
</li>
</ol>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_3">13.3 Supported OpenSSL Structures<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_4"><span class="style_1">SSL_METHOD</span> holds SSL version information and is either a client or server method.  (Same as WOLFSSL_METHOD in the native wolfSSL API).<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_4"><span class="style_1">SSL_CTX</span> holds context information including certificates.  (Same as WOLFSSL_CTX in the native wolfSSL API).<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_4"><span class="style_1">SSL</span> holds session information for a secure connection. (Same as WOLFSSL in the native wolfSSL API).<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_3">13.4 Supported OpenSSL Functions<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_4">The three structures shown above are usually initialized in the following way:<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_7">    SSL_METHOD* method = SSLv3_client_method();<br/></p>
<p class="paragraph_style_7">    SSL_CTX* ctx = SSL_CTX_new(method);<br/></p>
<p class="paragraph_style_7">    SSL* ssl = SSL_new(ctx);<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_4">This establishes a client side SSL version 3 method, creates a context based on the method, and initializes the SSL session with the context. A server side program is no different except that the <span class="style_1">SSL_METHOD</span> is created using <span class="style_1">SSLv3_server_method</span>(), or one of the available functions.  For a list of supported functions, please see section 4.2.  When using the OpenSSL Compatibility layer, the functions in 4.2 should be modified by removing the “wolf” prefix.  For example, the native wolfSSL API function:<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_7">    wolfTLSv1_client_method()<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_4">Becomes<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_7">    TLSv1_client_method()<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_4">When an SSL connection is no longer needed the following calls free the structures created during initialization.<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_7">    SSL_CTX_free(ctx);<br/></p>
<p class="paragraph_style_7">    SSL_free(ssl);<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_4"><span class="style_1">SSL_CTX_free</span>() has the additional responsibility of freeing the associated <span class="style_1">SSL_METHOD</span>. Failing to use the XXX_free() functions will result in a resource leak. Using the system's free() instead of the SSL ones results in undefined behavior.<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_4">Once an application has a valid SSL pointer from <span class="style_1">SSL_new</span>(), the SSL handshake process can begin. From the client's view, SSL_connect() will attempt to establish a secure connection.<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_7">    SSL_set_fd(ssl, sockfd);<br/></p>
<p class="paragraph_style_7">    SSL_connect(ssl);<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_4">Before the <span class="style_1">SSL_connect</span>() can be issued, the user must supply wolfSSL with a valid socket file descriptor, sockfd in the example above. sockfd is typically the result of the TCP function <span class="style_1">socket</span>() which is later established using TCP<span class="style_1"> connect</span>(). The following creates a valid client side socket descriptor for use with a local wolfSSL server on port 11111, error handling is omitted for simplicity.<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_7">    int sockfd = socket(AF_INET, SOCK_STREAM, 0);<br/></p>
<p class="paragraph_style_7">    sockaddr_in servaddr;<br/></p>
<p class="paragraph_style_7">    memset(&amp;servaddr, 0, sizeof(servaddr));<br/></p>
<p class="paragraph_style_7">    servaddr.sin_family = AF_INET;<br/></p>
<p class="paragraph_style_7">    servaddr.sin_port = htons(11111);<br/></p>
<p class="paragraph_style_7">    servaddr.sin_addr.s_addr = inet_addr(&quot;127.0.0.1&quot;);<br/></p>
<p class="paragraph_style_7">    connect(sockfd, (const sockaddr*)&amp;servaddr, sizeof(servaddr));<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_4">Once a connection is established, the client may read and write to the server. Instead of using the TCP functions <span class="style_1">send</span>() and <span class="style_1">receive</span>(), wolfSSL and yaSSL use the SSL functions <span class="style_1">SSL_write</span>() and <span class="style_1">SSL_read</span>(). Here is a simple example from the client demo:<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_7">    char msg[] = &quot;hello yassl!&quot;;<br/></p>
<p class="paragraph_style_7">    int wrote = SSL_write(ssl, msg, sizeof(msg));<br/></p>
<p class="paragraph_style_7">    char reply[1024];<br/></p>
<p class="paragraph_style_7">    int read = SSL_read(ssl, reply, sizeof(reply));<br/></p>
<p class="paragraph_style_7">    reply[read] = 0;<br/></p>
<p class="paragraph_style_7">    printf(&quot;Server response: %s\n&quot;, reply);<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_4">The server connects in the same way except that is uses <span class="style_1">SSL_accept</span>() instead of <span class="style_1">SSL_connect</span>(), analogous to the TCP API. See the server example for a complete server demo program.<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_3">13.5 x509 Certificates<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_4">Both the server and client can provide wolfSSL with certificates in either PEM or DER. Typical usage is like this:<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_7">    SSL_CTX_use_certificate_file(ctx, &quot;certs/cert.pem&quot;, SSL_FILETYPE_PEM);<br/></p>
<p class="paragraph_style_7">    SSL_CTX_use_PrivateKey_file(ctx, &quot;certs/key.der&quot;, SSL_FILETYPE_ASN1);<br/></p>
<p class="paragraph_style_4"><br/></p>
<p class="paragraph_style_4">A key file can also be presented to the Context in either format. SSL_FILETYPE_PEM signifies the file is PEM formatted while SSL_FILETYPE_ASN1 declares the file to be in DER format. To verify that the key file is appropriate for use with the certificate the following function can be used:<br/></p>
<p class="paragraph_style_4"><br/></p>
<p style="padding-bottom: 0pt; " class="paragraph_style_7">    SSL_CTX_check_private_key(ctx);</p>
</div>
</div>
</div>
<div id="id3" style="height: 24px; left: 193px; position: absolute; top: 122px; width: 268px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_268_24" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_8"><a class="class1" title="Docs.html" href="Docs.html">Docs</a> <span class="style_2">-&gt;</span> <span class="style_3">wolfSSL Manual</span></p>
</div>
</div>
</div>
<div style="height: 1px; width: 698px;  height: 1px; left: 37px; position: absolute; top: 220px; width: 698px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 698px; ">
<img src="Docs-wolfssl-manual-13-openssl-compatibility_files/shapeimage_1.jpg" alt="" style="height: 1px; left: 0px; position: absolute; top: 0px; width: 698px; "/>
</div>
</div>
<div style="height: 37px; width: 545px;  height: 37px; left: 191px; position: absolute; top: 80px; width: 545px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 545px; ">
<img src="Docs-wolfssl-manual-13-openssl-compatibility_files/shapeimage_2.png" alt="" style="height: 37px; left: 0px; position: absolute; top: 0px; width: 545px; "/>
</div>
</div>
<div id="id4" style="height: 25px; left: 200px; position: absolute; top: 84px; width: 43px; z-index: 1; " class="style_SkipStroke_1 shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_43_25" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_9"><a class="class2" title="Home.html" href="Home.html">Home</a></p>
</div>
</div>
</div>
<div id="id5" style="height: 25px; left: 365px; position: absolute; top: 84px; width: 72px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_72_25" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_10"><a class="class3" title="https://wolfssl.com/wolfSSL/download/downloadForm.php" href="https://wolfssl.com/wolfSSL/download/downloadForm.php">Download</a></p>
</div>
</div>
</div>
<div id="id6" style="height: 25px; left: 439px; position: absolute; top: 84px; width: 59px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_59_25" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_10"><a class="class4" title="License.html" href="License.html">License</a></p>
</div>
</div>
</div>
<div id="id7" style="height: 25px; left: 499px; position: absolute; top: 84px; width: 44px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_44_25" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_10"><a class="class5" title="Blog/Blog.html" href="Blog/Blog.html">Blog</a></p>
</div>
</div>
</div>
<div id="id8" style="height: 25px; left: 589px; position: absolute; top: 84px; width: 80px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_80_25" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_10"><a class="class6" title="Community.html" href="Community.html">Community</a></p>
</div>
</div>
</div>
<div style="height: 36px; width: 1px;  height: 36px; left: 245px; position: absolute; top: 81px; width: 0px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 0px; ">
<img src="Docs-wolfssl-manual-13-openssl-compatibility_files/shapeimage_3.png" alt="" style="height: 36px; left: 0px; position: absolute; top: 0px; width: 1px; "/>
</div>
</div>
<div style="height: 37px; width: 1px;  height: 37px; left: 296px; position: absolute; top: 80px; width: 0px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 0px; ">
<img src="Docs-wolfssl-manual-13-openssl-compatibility_files/shapeimage_4.png" alt="" style="height: 37px; left: 0px; position: absolute; top: 0px; width: 1px; "/>
</div>
</div>
<div style="height: 36px; width: 1px;  height: 36px; left: 363px; position: absolute; top: 81px; width: 0px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 0px; ">
<img src="Docs-wolfssl-manual-13-openssl-compatibility_files/shapeimage_5.png" alt="" style="height: 36px; left: 0px; position: absolute; top: 0px; width: 1px; "/>
</div>
</div>
<div style="height: 36px; width: 1px;  height: 36px; left: 438px; position: absolute; top: 81px; width: 0px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 0px; ">
<img src="Docs-wolfssl-manual-13-openssl-compatibility_files/shapeimage_6.png" alt="" style="height: 36px; left: 0px; position: absolute; top: 0px; width: 1px; "/>
</div>
</div>
<div style="height: 37px; width: 1px;  height: 37px; left: 498px; position: absolute; top: 80px; width: 0px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 0px; ">
<img src="Docs-wolfssl-manual-13-openssl-compatibility_files/shapeimage_7.png" alt="" style="height: 37px; left: 0px; position: absolute; top: 0px; width: 1px; "/>
</div>
</div>
<div style="height: 37px; width: 1px;  height: 37px; left: 589px; position: absolute; top: 80px; width: 0px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 0px; ">
<img src="Docs-wolfssl-manual-13-openssl-compatibility_files/shapeimage_8.png" alt="" style="height: 37px; left: 0px; position: absolute; top: 0px; width: 1px; "/>
</div>
</div>
<div id="id9" style="height: 25px; left: 671px; position: absolute; top: 84px; width: 61px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_61_25" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_10"><a class="class7" title="Contact.html" href="Contact.html">Contact</a></p>
</div>
</div>
</div>
<div id="id10" style="height: 25px; left: 249px; position: absolute; top: 84px; width: 44px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_44_25" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_9"><a class="class8" title="About.html" href="About.html">About</a></p>
</div>
</div>
</div>
<div style="height: 36px; width: 1px;  height: 36px; left: 670px; position: absolute; top: 81px; width: 0px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 0px; ">
<img src="Docs-wolfssl-manual-13-openssl-compatibility_files/shapeimage_9.png" alt="" style="height: 36px; left: 0px; position: absolute; top: 0px; width: 1px; "/>
</div>
</div>
<div id="id11" style="height: 25px; left: 298px; position: absolute; top: 84px; width: 63px; z-index: 1; " class="style_SkipStroke_1 shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_63_25" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_10"><a class="class9" title="Products.html" href="Products.html">Products</a></p>
</div>
</div>
</div>
<div id="id12" style="height: 25px; left: 549px; position: absolute; top: 84px; width: 41px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_41_25" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_9"><a class="class10" title="Docs.html" href="Docs.html">Docs</a></p>
</div>
</div>
</div>
<div style="height: 37px; width: 1px;  height: 37px; left: 545px; position: absolute; top: 80px; width: 0px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 0px; ">
<img src="Docs-wolfssl-manual-13-openssl-compatibility_files/shapeimage_10.png" alt="" style="height: 37px; left: 0px; position: absolute; top: 0px; width: 1px; "/>
</div>
</div>
<div id="id13" style="height: 27px; left: 634px; position: absolute; top: 224px; width: 102px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_102_27" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_11"><a class="class11" title="Docs-wolfssl-manual-14-licensing.html" href="Docs-wolfssl-manual-14-licensing.html">Next Chapter</a></p>
</div>
</div>
</div>
<div id="id14" style="height: 25px; left: 35px; position: absolute; top: 224px; width: 125px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_125_25" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_12"><a class="class12" title="Docs-wolfssl-manual-12-best-practices-for-embedded-devices.html" href="Docs-wolfssl-manual-12-best-practices-for-embedded-devices.html">Previous Chapter</a></p>
</div>
</div>
</div>
<div id="id15" style="height: 25px; left: 323px; position: absolute; top: 224px; width: 125px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_125_25" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_13"><a title="Docs-wolfssl-manual-toc.html" href="Docs-wolfssl-manual-toc.html">Table of Contents</a></p>
</div>
</div>
</div>
<div id="id16" style="height: 27px; left: 59px; position: absolute; top: 190px; width: 196px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_196_27" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_14"><a class="class13" title="https://www.wolfssl.com/documentation/wolfSSL-Manual.pdf" href="https://www.wolfssl.com/documentation/wolfSSL-Manual.pdf">Download wolfSSL Manual (PDF)</a></p>
</div>
</div>
</div>
<div style="height: 22px; width: 22px;  height: 22px; left: 33px; position: absolute; top: 191px; width: 22px; z-index: 1; " class="tinyText style_SkipStroke_2">
<img src="Docs-wolfssl-manual-13-openssl-compatibility_files/PDF.png" alt="" style="border: none; height: 22px; width: 22px; "/>
</div>
<div style="height: 16px; width: 20px;  height: 16px; left: 706px; position: absolute; top: 51px; width: 20px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 20px; ">
<img src="Docs-wolfssl-manual-13-openssl-compatibility_files/shapeimage_11.png" alt="" style="height: 16px; left: 0px; position: absolute; top: 0px; width: 20px; "/>
</div>
</div>
<div style="height: 19px; width: 19px;  height: 19px; left: 707px; position: absolute; top: 25px; width: 19px; z-index: 1; " class="tinyText style_SkipStroke_2">
<img src="Docs-wolfssl-manual-13-openssl-compatibility_files/United%20Kingdom(Great%20Britain).png" alt="" style="border: none; height: 19px; width: 19px; "/>
</div>
<div id="id17" style="height: 23px; left: 328px; position: absolute; top: 48px; width: 258px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_258_23" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_15">Questions? +1 (425) 245-8247</p>
</div>
</div>
</div>
<div style="height: 19px; width: 19px;  height: 19px; left: 685px; position: absolute; top: 25px; width: 19px; z-index: 1; " class="tinyText style_SkipStroke_2">
<a href="http://www.wolfssl.jp/" title="http://www.wolfssl.jp"><img src="Docs-wolfssl-manual-13-openssl-compatibility_files/japan.png" alt="" style="border: none; height: 19px; width: 19px; "/></a>
</div>
<div id="id18" style="height: 28px; left: 593px; position: absolute; top: 44px; width: 119px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_119_28" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_16"><a class="class14" title="https://www.wolfssl.com/forums" href="https://www.wolfssl.com/forums">Support <span class="style_4">Forums</span></a></p>
</div>
</div>
</div>
<div style="height: 121px; width: 155px;  height: 121px; left: 32px; position: absolute; top: 5px; width: 155px; z-index: 1; " class="tinyText style_SkipStroke_2">
<a href="Home.html" title="Home.html"><img src="Docs-wolfssl-manual-13-openssl-compatibility_files/wolfssl_logo.png" alt="" style="border: none; height: 121px; width: 156px; "/></a>
</div>
<div style="height: 2532px; line-height: 2532px; " class="spacer"> </div>
</div>
<div style="height: 100px; margin-left: 0px; position: relative; width: 770px; z-index: 15; " id="footer_layer">
<div style="height: 0px; line-height: 0px; " class="bumper"> </div>
<div id="id19" style="height: 27px; left: 634px; position: absolute; top: 27px; width: 102px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_102_27" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_11"><a class="class15" title="Docs-wolfssl-manual-14-licensing.html" href="Docs-wolfssl-manual-14-licensing.html">Next Chapter</a></p>
</div>
</div>
</div>
<div id="id20" style="height: 25px; left: 35px; position: absolute; top: 27px; width: 125px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_125_25" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_17"><a class="class16" title="Docs-wolfssl-manual-12-best-practices-for-embedded-devices.html" href="Docs-wolfssl-manual-12-best-practices-for-embedded-devices.html">Previous Chapter</a></p>
</div>
</div>
</div>
<div id="id21" style="height: 25px; left: 323px; position: absolute; top: 27px; width: 125px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_125_25" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_18"><a class="class17" title="Docs-wolfssl-manual-toc.html" href="Docs-wolfssl-manual-toc.html">Table of Contents</a></p>
</div>
</div>
</div>
<div id="id22" style="height: 29px; left: 35px; position: absolute; top: 65px; width: 701px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_701_29" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_19">Copyright 2017 wolfSSL Inc.  All rights reserved.</p>
</div>
</div>
</div>
</div>
</div>
</div>
 </body>

<!-- Mirrored from www.wolfssl.com/wolfSSL/Docs-wolfssl-manual-13-openssl-compatibility.html by HTTrack Website Copier/3.x [XR&CO'2014], Tue, 17 Jan 2017 13:31:53 GMT -->
</html>
